package com.example.Service;

import com.example.Dao.UserDao;
import com.example.pojo.PasswordResetVo;
import com.example.pojo.User;


import java.util.List;

public class UserService {
    UserDao userDao = new UserDao();
    private String newPwd;

    //登录验证
    public User check_login(User u) {
        User user = userDao.getUser(u);
        return user;
    }

//    // 检查账号是否已存在
//    public boolean checkUserIdExists(String userId) {
//        User user = userDao.findUserByUserId(userId);
//        return user != null; // 不为null说明已存在
//    }


    // 注册新用户
//    public boolean register(User user) {
//        // 可以在这里添加密码加密等逻辑（如MD5加密）
//        return userDao.insertUser(user) > 0; // 插入成功返回true
//    }

     //注册新用户
    public int addUser(User user) {
        return userDao.addUser(user);
    }
    //查看所有用户
    public List<User> getAllUser(int currentPage, int pageSize) {
        List<User> list=userDao.getAllUser(currentPage,pageSize);
        return list;
    }
    //获取总行数
    public int getTotal(){
        return userDao.getTotal();
    }

    public int deleteUser(int userId){
        int n=userDao.deleteUser(userId);
        return n;
    }
    //批量删除
    public  int deleteBatchUser(List<Integer> ids){
        return userDao.deleteBatchUser(ids);
    }
    //编辑新闻
    public int EditUser(User user){
        return userDao.EditUser(user);
    }
    //看用户
    public User getUserInfo(int userId){
        User n=userDao.getUserInfo(userId);
        return n;
    }

    // ===================== 新增方法：找回密码核心业务 =====================
    public String resetPassword(PasswordResetVo resetVO) {
        // 1. 第一步：校验前端参数是否为空
        if (resetVO.getUserId() == null || resetVO.getUserId().trim().isEmpty()
                || resetVO.getUserPhone() == null || resetVO.getUserPhone().trim().isEmpty()
                || resetVO.getCheckNum() == null || resetVO.getCheckNum().trim().isEmpty()
                || resetVO.getNewPwd() == null || resetVO.getNewPwd().trim().isEmpty()) {
            return "参数不能为空，请完善信息";
        }

        // 2. 第二步：将账号（字符串）转为int类型（数据库中userId是int）
        int userId;
        try {
            userId = Integer.parseInt(resetVO.getUserId().trim());
        } catch (NumberFormatException e) {
            return "账号必须是数字";
        }
        // 3. 第三步：校验账号是否存在（调用Dao层新增方法）
        User user = userDao.getUserByUserId(userId);
        if (user == null) {
            return "账号不存在";
        }
        // 4. 第四步：校验手机号是否匹配（数据库中的手机号 vs 前端输入的手机号）
        if (!user.getUserPhone().equals(resetVO.getUserPhone().trim())) {
            return "手机号与账号绑定的手机号不匹配";
        }

        // 5. 修复：使用resetVO的新密码，不是成员变量newPwd
        String newPwd = resetVO.getNewPwd().trim();

        // 6. 第六步：执行修改密码（调用Dao层新增方法）
        int flag = userDao.updateUserPwd(userId, newPwd);
        if (flag > 0) {
            return "密码修改成功！请使用新密码登录";
        } else {
            return "密码修改失败，请重试";
        }
    }
}